#!/usr/bin/env python 
# -*- coding:utf-8 -*-
"""
@Time:2021/11/19 9:02 下午"
@Author:lydia_liu"
@File:animal.py
@function:
"""

# 比如创建一个类（Animal）【动物类】，类里有属性（名称，颜色，年龄，性别），类方法（会叫，会跑）
class Animal:

    def __init__(self,name,color,age,gender):
        self.name = name
        self.color = color
        self.age = age
        self.gender =gender

    def call(self):
        print("动物会叫！")

    def run(self):
        print("动物会跑！")

    # 创建子类【猫】，继承【动物类】
class Cat(Animal):
    # 重写父类的__init__方法，继承父类的属性
    def __init__(self,hair,name,color,age,gender):
        super().__init__(name,color,age,gender)

    # 添加一个新的属性，毛发=短毛
        self.hair = hair

    # 添加一个新的方法， 会捉老鼠，
    def catch(self):
        print("猫咪会捉老鼠")

    # 重写父类的【会叫】的方法，改成【喵喵叫】
    def call(self):
        print("猫咪会喵喵叫！")

    # 创建子类【狗】，继承【动物类】
class Dog(Animal):

    # 复写父类的__init__方法，继承父类的属性
    def __init__(self, hair, name, color, age, gender):
        super().__init__(name, color, age, gender)

    # 添加一个新的属性，毛发=长毛
        self.hair = hair

    # 添加一个新的方法， 会看家
    def carehome(self):
        print("狗狗会看家！")
    # 复写父类的【会叫】的方法，改成【汪汪叫】
    def call(self):
        print("狗狗会汪汪叫！")

# 在入口函数中创建类的实例
if __name__ == '__main__':

    # 创建一个猫猫实例
    cat = Cat("短毛","猫咪","white",3,"公")
    # 调用捉老鼠的方法
    cat.catch()
    # 打印【猫猫的姓名，颜色，年龄，性别，毛发】
    print(f"小猫的姓名：{cat.name},年龄:{cat.age}，性别:{cat.gender}，毛发:{cat.hair}")
    print("------------------------------------")
    # 创建一个狗狗实例
    dog = Dog("长毛","狗狗","yellow",5,"公")
    # 调用【会看家】的方法
    dog.carehome()
    # 打印【狗狗的姓名，颜色，年龄，性别，毛发】
    print(f"小狗的姓名：{dog.name},年龄:{dog.age}，性别:{dog.gender}，毛发:{dog.hair}")